package sap.business.commons;

import java.io.Serializable;
import java.util.List;

import org.hibernate.HibernateException;

import sap.business.inter.results.ResultBacked;

import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoStructure;
import com.sap.conn.jco.JCoTable;

public interface IInterServices<E, I extends Serializable>  {
	
	SapMessageReturn<E> SynchroToSap(List<E> valueList) throws AbapException, Exception;
	
	ResultBacked SynchroToSap(JCoFunction jcoFunction, JCoTable jcoTable, List<E> valueList) throws AbapException, Exception;
	
	void SynchroToSap(JCoFunction jcoFunction, JCoStructure jCoStructure, List<E> valueList) throws AbapException, Exception;
	
	void SynchroToSap(JCoFunction jcoFunction, JCoTable jcoTable, JCoStructure jCoStructure, List<E> valueList) throws AbapException, Exception;
	
	SapMessageReturn<E> CallbackMessageFromSap(JCoTable jcoTable_return) throws AbapException, Exception;
	
	SapMessageReturn<E> CallbackMessageFromSap(JCoTable jcoTable_return, JCoTable jCoTableReturn) throws AbapException, Exception;
	
	SapMessageReturn<E> CallbackMessageFromSap(JCoStructure jCoStructureReturn) throws AbapException, Exception;
	
	SapMessageReturn<E> CallbackMessageFromSap(JCoTable jcoTable_return, List<E> valueList) throws AbapException, Exception;	

}
